1. Field of the Invention
The present invention relates to a cluster system, a memory access control method, and a recording medium for facilitating the parallel processing programming under a SAN (Storage Area Network) environment which uses a dedicated high-speed network for connection between a storage device and a computer.
2. Description of the Related Art
In recent years, attention is paid to a SAN which uses a dedicated high-speed network such as Fibre Channel to connect a computer (hereafter referred to as a server computer or just a server) with a magnetic disk device as a data storage device.
The SAN has the following advantages: (1) Capable of sharing a storage device among a plurality of severs; (2) Capable of separating an access load for the storage device from a LAN (Local Area Network); and (3) Capable of accelerating an access to the storage device. Of these, (1) is the general SAN advantage. Applying the cluster file system technology to this advantage enables not only to share the storage device among a plurality of server, but to have shared access to files.
A GFS (Global File System) developed by Sistina Software Inc. in the U.S. is an example of this cluster file system. The cluster file system allows shared access to a file stored in the storage device from a plurality of server computers.
Generally, an NFS (Network File System) is associated with shared access to a file from a plurality of server computers. However, the NFS does not ensure data consistency when a plurality of server computers update the same file. By contrast, the cluster file system ensures data consistency.
The cluster file system is provided with a cluster file system lock mechanism across a plurality of server computers for ensuring data consistency in addition to the shared access (read/write) function for files by a plurality of server computers. The cluster file system lock mechanism enables parallel application programs on a cluster system including a plurality of server computers.
For example, a cluster system is configured so that one magnetic disk device is connected to a plurality of server computers each having the cluster file system and the cluster file system lock mechanism through the intermediation of the SAN. This cluster system is loosely coupled without sharing main memory. A process running on each server computer uses the cluster file system to have shared access to a file stored in the magnetic disk device. Further, the process uses the cluster file system lock mechanism for exclusive access control, ensuring data consistency of files stored in the magnetic disk device.
By contrast, an SMP (Symmetrical Multiprocessor) parallel computer is provided with a file system, a shared memory system, and a lock mechanism, has a plurality of processors, and connects with, say, one magnetic disk device. A plurality of processes executed on this SMP-type parallel computer can each have shared access to a file stored in the magnetic disk device via the file system, or can access shared memory (main memory) via the shared memory system. A plurality of processes can maintain data consistency by providing exclusive access control during a shared access to files stored in the magnetic disk device or data stored in shared memory by means of the lock mechanism.
When comparing the conventional loosely-coupled cluster system with the SMP-type parallel computer, both can allow shared access to files stored in the magnetic disk device and maintain the data consistency.
However, the cluster system having the cluster file system can have shared access to files, but not to memory. Because of this, the cluster system having the cluster file system has a problem that it is difficult to use the parallel program for coding an application program to be executed.
Specifically, processes executed on a plurality of server computers are programmed to share files or data, ensure data consistency among each other, and synchronize data for data processing. Such programming needs to use memory for placing files or data to be processed by the processes in a shared manner, but this is impossible. When the process needs to process files or data synchronously in a shared manner by ensuring data consistency, the cluster file system needs to be used for placing files or data to be shared on a magnetic disk device. In this case, the process needs to be programmed by using an I/O command which uses an input/output device for processing files or data.
More complicated programming is needed when processing files or data stored in a file device (magnetic disk device) compared to when processing those stored in memory. A simple program using a load or store command can process data stored in memory.
When processing files or data stored in the magnetic disk device, however, it is necessary to code a program using complicated commands for I/O processing, making parallel program coding difficult. Compared to processing of data stored in memory, it takes time to process data stored in a file device (I/O device) such as a magnetic disk device, generating a problem of degrading a processing speed.
The cluster system loosely coupling a plurality of server computers provided with cluster file systems enables a shared access to files stored in a file device such as a magnetic disk device, but not a shared access to main memory. Compared with an SMP-type parallel computer, there arises a problem that coding with a parallel program is difficult.
Accordingly, there is a need to facilitate parallel program coding for the cluster system which loosely couples a plurality of server computers provided with cluster file systems.